<script setup>
import { onHide,onLaunch,onShow } from '@dcloudio/uni-app'
import { storeToRefs } from 'pinia'
import { useMainStore } from '@/store/store'
const main = useMainStore()
import { isWeixin,parseQuery } from '@/utils/util'
import cookie from '@/utils/cookie'
import {
  userAuthSession,
  wechatAuth
} from '@/api/auth'
import { APP_ID } from '@/config'

onLaunch(() => {
	console.log('App Launch')
})

onShow(() => {
    console.log('App Show')
   
	// 检查用户登录情况
	// #ifdef H5
	if(isWeixin()){
	
		// H5编译的代码
		// 判断是否是微信浏览器
	}
	// #endif
	// #ifdef MP-WEIXIN
	wechatMiniLogin();
	// #endif
})

onHide(() => {
   console.log('App Hide')
})


//初始化openid的方法，会进行code校验，需钱后端都配置同样的appid与密钥。code如何生成
//调用wx.login组件 调用接口获取登录凭证（code）,代码中common_vendor.index未显式指明插件时，等效于wx
/*
* uni是一个自执行函数，用于在不同的环境中初始化 uni 对象，以提供统一的接口来处理页面导航、消息传递等操作。函数的作用是根据当前环境的不同，选择合适的方式来初始化 uni 对象，并返回一个包含特定功能的对象。
具体实现如下：
1. 首先，函数会尝试在当前环境中创建一个 uni 对象，如果已经存在 uni 对象，则直接使用，否则创建一个新的 uni 对象。
2. 然后，函数会根据当前环境的不同，选择合适的方式来初始化 uni 对象的方法和属性。根据不同的环境，会执行不同的初始化逻辑，如判断是否是在微信小程序、支付宝小程序、百度小程序等环境中。
3. 最后，函数会返回一个包含特定功能的 uni 对象，该对象包含了页面导航、消息传递等操作的方法，以及特定环境下的一些特殊处理逻辑。
总的来说，这段代码的作用是根据当前环墋的不同，动态地初始化 uni 对象，并提供统一的接口来处理不同环境下的操作。
* */

const wechatMiniLogin = () => {
	//this.$u.toast('登录中'); 调用wx.login
	uni.login({
		provider: 'weixin'
	}).then(async (res) => {
		let data = await userAuthSession({
			code: res.code
		});
		if (data) {
			main.SET_OPENID(data.openId)
			if (data.hasOwnProperty('userInfo') && data.accessToken && data.accessToken != '') {
				main.SET_MEMBER(data.userInfo);
				main.SET_TOKEN(data.accessToken);
			}
		}
	});
}



</script>

<style lang="scss">
@import '~@/static/style/app.scss';
//@import 'static/iconfont/iconfont.scss';
//@import url('./static/style/style.less');
@import 'static/style/yshop.css';

// /*每个页面公共css */
// page {
//   background-color: #f5f5f5;
// }
</style>
